generated_sources = [
    'Gdk_Pixbuf.cs',
    'Gdk_GdkSharp.FilterFuncNative.cs',
    'Gdk_GdkSharp.EventFuncNative.cs',
    'Gdk_FilterFunc.cs',
    'Gdk_EventFunc.cs',
    'Gdk_ActionChangedHandler.cs',
    'Gdk_PixbufBufferQueue.cs',
    'Gdk_ByteOrder.cs',
    'Gdk_Error.cs',
    'Gdk_EventMask.cs',
    'Gdk_FilterReturn.cs',
    'Gdk_PixbufAniAnimIter.cs',
    'Gdk_WindowPaint.cs',
    'Gdk_ThreadsDispatch.cs',
    'Gdk_EventHelper.cs',
    'Gdk_DevicePadAdapter.cs',
    'Gdk_Monitor.cs',
    'Gdk_GLError.cs',
    'Gdk_EventFilter.cs',
    'Gdk_Cursor.cs',
    'Gdk_Events.cs',
    'Gdk_Gravity.cs',
    'Gdk_Backend.cs',
    'Gdk_FrameClockPhase.cs',
    'Gdk_Gif89.cs',
    'Gdk_OffscreenWindowClass.cs',
    'Gdk_AxisUse.cs',
    'Gdk_Global.cs',
    'Gdk_SeatCapabilities.cs',
    'Gdk_ArgContext.cs',
    'Gdk_DeviceToolType.cs',
    'Gdk_IOClosure.cs',
    'Gdk_WindowChildFunc.cs',
    'Gdk_Selection.cs',
    'Gdk_WindowType.cs',
    'Gdk_GLContext.cs',
    'Gdk_AreaUpdatedHandler.cs',
    'Gdk_ToolChangedHandler.cs',
    'Gdk_Drag.cs',
    'Gdk_GrabStatus.cs',
    'Gdk_CursorType.cs',
    'Gdk_PixbufFrameAction.cs',
    'Gdk_DeviceAddedHandler.cs',
    'Gdk_Color.cs',
    'Gdk_EventTouchpadPinch.cs',
    'Gdk_FrameClock.cs',
    'Gdk_DropPerformedHandler.cs',
    'Gdk_SeatRemovedHandler.cs',
    'Gdk_PixbufGifAnimIter.cs',
    'Gdk_MonitorAddedHandler.cs',
    'Gdk_WindowWindowClass.cs',
    'Gdk_PixbufGifAnim.cs',
    'Gdk_PixbufScaledAnimIter.cs',
    'Gdk_WMFunction.cs',
    'Gdk_PickEmbeddedChildHandler.cs',
    'Gdk_PropertyState.cs',
    'Gdk_Atom.cs',
    'Gdk_TiffContext.cs',
    'Gdk_MonitorRemovedHandler.cs',
    'Gdk_TimeCoord.cs',
    'Gdk_PixbufAlphaMode.cs',
    'Gdk_IcnsBlockHeader.cs',
    'Gdk_PixbufAnimation.cs',
    'Gdk_PixbufRotation.cs',
    'Gdk_PixbufFormat.cs',
    'Gdk_PixdataDumpType.cs',
    'Gdk_Window.cs',
    'Gdk_TGAContext.cs',
    'Gdk_SeatDefault.cs',
    'Gdk_WindowTypeHint.cs',
    'Gdk_Pixdata.cs',
    'Gdk_Pointer.cs',
    'Gdk_Screen.cs',
    'Gdk_DeviceChangedHandler.cs',
    'Gdk_PangoHelper.cs',
    'Gdk_GlobalErrorTrap.cs',
    'Gdk_ToEmbedderHandler.cs',
    'Gdk_XPMContext.cs',
    'Gdk_EventPadAxis.cs',
    'Gdk_Colorspace.cs',
    'Gdk_Predicate.cs',
    'Gdk_Seat.cs',
    'Gdk_InterpType.cs',
    'Gdk_TGAHeader.cs',
    'Gdk_PixdataType.cs',
    'Gdk_PixbufLoader.cs',
    'Gdk_MovedToRectHandler.cs',
    'Gdk_SizePreparedHandler.cs',
    'Gdk_LoadContext.cs',
    'Gdk_IconEntry.cs',
    'Gdk_SettingAction.cs',
    'Gdk_CrossingMode.cs',
    'Gdk_Property.cs',
    'Gdk_DragContext.cs',
    'Gdk_FrameTimings.cs',
    'Gdk_SeatGrabPrepareFunc.cs',
    'Gdk_ArgDesc.cs',
    'Gdk_ModifierIntent.cs',
    'Gdk_OffscreenWindow.cs',
    'Gdk_Keyval.cs',
    'Gdk_DragAction.cs',
    'Gdk_PixbufAnimationIter.cs',
    'Gdk_VisibilityState.cs',
    'Gdk_PixbufNonAnimIterClass.cs',
    'Gdk_NotifyType.cs',
    'Gdk_Keymap.cs',
    'Gdk_DisplayManager.cs',
    'Gdk_DeviceRemovedHandler.cs',
    'Gdk_CairoHelper.cs',
    'Gdk_PixbufNonAnimIter.cs',
    'Gdk_IDevicePad.cs',
    'Gdk_VisualType.cs',
    'Gdk_FullscreenMode.cs',
    'Gdk_Threads.cs',
    'Gdk_GifContext.cs',
    'Gdk_DeviceTool.cs',
    'Gdk_KeymapKey.cs',
    'Gdk_PixbufError.cs',
    'Gdk_Display.cs',
    'Gdk_ClosedHandler.cs',
    'Gdk_EventPadButton.cs',
    'Gdk_DeviceManager.cs',
    'Gdk_Device.cs',
    'Gdk_Visual.cs',
    'Gdk_PixbufNonAnim.cs',
    'Gdk_EventTouchpadSwipe.cs',
    'Gdk_DragProtocol.cs',
    'Gdk_PixbufSaveFunc.cs',
    'Gdk_InputMode.cs',
    'Gdk_DevicePadFeature.cs',
    'Gdk_WindowHints.cs',
    'Gdk_PixbufSimpleAnimIterClass.cs',
    'Gdk_AppLaunchContext.cs',
    'Gdk_ModifierType.cs',
    'Gdk_TGAFooter.cs',
    'Gdk_GdkSharp.PixbufDestroyNotifyNative.cs',
    'Gdk_WindowAttributesType.cs',
    'Gdk_DragCancelReason.cs',
    'Gdk_FrameClockIdle.cs',
    'Gdk_InputSource.cs',
    'Gdk_Status.cs',
    'Gdk_PixbufSimpleAnimIter.cs',
    'Gdk_AxisFlags.cs',
    'Gdk_PropMode.cs',
    'Gdk_PixbufScaledAnimIterClass.cs',
    'Gdk_DisplayOpenedHandler.cs',
    'Gdk_Geometry.cs',
    'Gdk_DeviceType.cs',
    'Gdk_WindowEdge.cs',
    'Gdk_WMDecoration.cs',
    'Gdk_WindowRedirect.cs',
    'Gdk_WindowAttr.cs',
    'Gdk_Keyboard.cs',
    'Gdk_EventPadGroupMode.cs',
    'Gdk_GdipContext.cs',
    'Gdk_PixbufDestroyNotify.cs',
    'Gdk_CancelHandler.cs',
    'Gdk_DrawingContext.cs',
    'Gdk_Point.cs',
    'Gdk_TGAColor.cs',
    'Gdk_TGAColormap.cs',
    'Gdk_AnchorHints.cs',
    'Gdk_PixbufSimpleAnim.cs',
    'Gdk_EventSequence.cs',
    'Gdk_GdkSharp.WindowChildFuncNative.cs',
    'Gdk_GdkSharp.PixbufSaveFuncNative.cs',
    'Gdk_Drop.cs',
    'Gdk_ClientFilter.cs',
    'Gdk_SubpixelLayout.cs',
    'Gdk_EventType.cs',
    'Gdk_TouchpadGesturePhase.cs',
    'Gdk_GrabOwnership.cs',
    'Gdk_RGBA.cs',
    'Gdk_PixbufNonAnimClass.cs',
    'Gdk_SeatDefaultClass.cs',
    'Gdk_WindowState.cs',
    'Gdk_SeatAddedHandler.cs',
    'Gdk_PixbufFrame.cs',
    'Gdk_GdkSharp.SeatGrabPrepareFuncNative.cs',
    'Gdk_AxisInfo.cs',
    'Gdk_ScrollDirection.cs',
    'Gdk_FromEmbedderHandler.cs',
    'Gdk_EventTouch.cs',
    'Gdk_XBMData.cs',
    'Gdk_OwnerChange.cs',
    'Gdk_PixbufAniAnim.cs',
    'Gdk_CreateSurfaceHandler.cs',
    'Gdk_GdkSharp.WindowInvalidateHandlerFuncNative.cs',
    'Gdk_WindowInvalidateHandlerFunc.cs',
    'GLib_GLibSharp.AsyncReadyCallbackNative.cs',
    'GLib_GLibSharp.GSourceFuncNative.cs',
]

run_target('update_' + pkg + '_code',
    command: [
        generate_api,
        '--api-raw', raw_api_fname,
        '--gapi-fixup', gapi_fixup.full_path(),
        '--metadata', metadata_fname,
        '--symbols', symbols,
        '--gapi-codegen', gapi_codegen.full_path(),
        '--extra-includes', glib_api_includes,
        '--extra-includes', pango_api_includes,
        '--extra-includes', gio_api_includes,
        '--extra-includes', cairo_api_includes,
        '--out', meson.current_source_dir(),
        '--files', ';'.join(generated_sources),
        '--assembly-name', assembly_name,
        '--schema', schema,
    ],
    depends: [gapi_codegen, gapi_fixup])

pkgs += [pkg]
source_gen = files(generated_sources)
gdk_api_includes = join_paths(meson.current_source_dir(), 'gdk-api.xml')
if install
    install_data(gdk_api_includes, install_dir: gapi_xml_installdir)
endif